package 多线程.AQS.countDownLathTest;

import java.util.concurrent.CountDownLatch;

/**
 * CountDownLatch：主要作用于一个或多个线程等待其它线程完成一组操作，计数器为0时，会唤醒所有的等待线程。
 * CyclicBarrier：主要用于一组线程互相等待，直到所有线程都到达屏障后才继续执行，之后CyclicBarrier可以被重用。
 *
 * CyclicBarrier维护线程的计数，而CountDownLatch维护任务的计数。
 */
public class TestCountDownLatch2 {
    public static void main(String[] args) throws InterruptedException {
        CountDownLatch countDownLatch=new CountDownLatch(2);
        new Thread(()->{
            countDownLatch.countDown();
            countDownLatch.countDown();
        }).start();
        countDownLatch.await();
        System.out.println(countDownLatch.getCount());//0
    }
}